package locomotive;

import java.awt.Color;
import java.awt.Graphics;
import magicbox.*;
import rocketship.Util;
import scaffold.*;

/**
 *
 * @author Mikael Köhlmyr | mikael@kohlmyr.com | http://www.kmyr.net
 */
public class Main {
        public static void main(String[] args) {
                Window w = Window.open(780, 460, new SmokeScreen(), "Locomotive 1.0 | SmokeScreen");
                if(w != null)
                        w.go();
        }
}

class SmokeScreen extends Screen implements LoopingScreen{
        Vertex p1, p2, p3;
        
        public SmokeScreen(){
                this.p1 = new Vertex(25.00, 25.00);
                this.p2 = new Vertex(80.00, 25.00);
                this.p3 = new Vertex(80.00, 80.00);
        }
        
        @Override
        public void configure() {
                super.configure();
                super.update();
        }

        @Override
        public void draw(Graphics g) {
                // allt som skall ritas ut görs här, om vi inte har en deffered paint på trådade entiteter?
                g.setColor(Color.RED);
                g.fillRect(0, 0, Screen.WIDTH, Screen.HEIGHT);
                g.setColor(Color.BLACK);
                g.drawLine((int)p1.x, (int)p1.y, (int)p2.x, (int)p2.y);
                g.drawLine((int)p2.x, (int)p2.y, (int)p3.x, (int)p3.y);
                g.drawLine((int)p3.x, (int)p3.y, (int)p1.x, (int)p1.y);
        }

        @Override
        public void loop() {
                // alla matematiska förändringar sker här (förutsatt att man inte använder separat trådade entiteter (particles demot, flytta över det hit =) )
                System.out.println("hithere!");
                int i = 1;
                while(i < 400){
                        try {
                                Thread.sleep(100);
                        } catch (InterruptedException ex) {
                                Util.catcher(ex);
                        }
                        this.p1.x++;;
                        i++;
                        super.update();
                }
        }
}